#ifndef __SERVER_MAIN_H__
#define __SERVER_MAIN_H__

#include <stdint.h>
#include <stdio.h>
#include <my_head.h>

typedef struct {

    //温湿度
    float humi;
    float temp;

    //三合一
    int  als;  // 环境光
    int  ps;  // 接近
    int  ir;  // 红外

    int ledstart;       //通过位标识LED状态 :0 LED1, :1 LED2, :2 LED3
}device_env_t;

typedef struct {
    char ID[20];                //用户名
    char PS[20];                //密码
    int msgtype;                //1 PC客户端, 0 设备端 每条消息都需要有，用于标识是什么设备
    int cmd;                    //命令码   
    int flags;                  //1 设备执行成功，0设置执行失败
    char device_id[20];         //设备号
    int device_ctrl;            //设备控制命令  devctrl_t  设备端会直接拷贝返回
    float value;                //阈值 下发给设备的温湿度警报阈值
    char pcjsonbuf[1024];       //PC端JSON保存
    char devjsonbuf[1024];      //设备端json保存
    char buf[64];               //保留
    device_env_t devent;
}msg_t;


//用于消息队列填充的结构体
typedef struct{
    long msgtype;               //消息队列消息类型 又设备号ASCII相加得到 尽量保证唯一性
    char jsonbuf[1024];         //用于传输dev和pc之间传递json
}msg_queue_t;


typedef enum {
    PCCLIENT_LOGIN,             //客户端登录        CMD
    PCCLIENT_REGISTER,          //客户端注册        CMD
    DEVICE_ENV_MSG_UP,          //设备上报信息      后续所有的都是 device_ctrl
    DEVICE_CTRL_LED1_OPEN,      //设备控制
    DEVICE_CTRL_LED1_CLOSE,
    DEVICE_CTRL_LED2_OPEN,
    DEVICE_CTRL_LED2_CLOSE,
    DEVICE_CTRL_LED3_OPEN,
    DEVICE_CTRL_LED3_CLOSE,
    DEVICE_CTRL_BEEP_OPEN,
    DEVICE_CTRL_BEEP_CLOSE,
    DEVICE_CTRL_FAN_OPEN,
    DEVICE_CTRL_FAN_CLOSE,
    DEVICE_SET_UPHUMI_VALUE,    //设置阈值
    DEVICE_SET_DOWNHUMI_VALUE,
    DEVICE_SET_UPTEMP_VALUE,
    DEVICE_SET_DOWNTEMP_VALUE,
     //风扇挡位设置是否需要加（1档，2档）
}devctrl_t; 




#endif